$(function () {
  /* 发布文章页打开_左侧边栏高亮 */
  $('.level02 li', window.parent.document).eq(1).addClass('active').siblings().removeClass('active')

  /* 获取文章分类 */
  $.ajax({
    method: 'GET',
    url: BigNew.category_list,
    success: (res) => {
      const htmlStr = template('cateItem', { list: res.data })
      $('.category').html(htmlStr)
    },
  })

  /* 初始化日期插件 */
  jeDate('#date', {
    // 事件触发 trigger
    trigger: 'click',
    // 日期格式
    format: 'YYYY-MM-DD',
    // 主题
    theme: { bgcolor: '#569CD6', pnColor: '#9CDCFE' },
    // 是否设置初始值(现在的时间)
    isinitVal: true,
  })

  /* 业务4：富文本插件 */
  tinymce.init({
    selector: '#content',
    height: '350px',
    language: 'zh_CN',
    directionality: 'ltl',
    browser_spellcheck: true,
    contextmenu: false,
    plugins: [
      'advlist autolink lists link image charmap print preview anchor',
      'searchreplace visualblocks code fullscreen',
      'insertdatetime media table contextmenu paste imagetools wordcount',
      'code',
    ],
    toolbar:
      'insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | code',
  })

  /* 业务5：图片预览功能 */
  $('[name="cover"]').change(function () {
    // 获取文件对象
    const fileObj = $('[name="cover"]').get(0).files[0]
    // 把文件对象转换成 url 路径
    const url = URL.createObjectURL(fileObj)
    // 把 url 路径替换到 src 中实现预览
    $('.article_cover').prop('src', url)
  })
  /* 
  文章发布页面与文字编辑页面业务逻辑基本相同，不同点如下
    1.文字发布页面，不需要展示文章详情
    2.文章发布页面的接口 url 路径不同
    3.文章发布页面的参数比文章编辑要少（不用传文章id）
  */
  $('[type=submit]').click(function (e) {
    e.preventDefault()
    const state = $(this).attr('data-state')
    const fd = new FormData(document.querySelector('#form'))
    fd.append('state', state)
    fd.set('content', tinymce.activeEditor.getContent())
    // fd.forEach((value, key) => {
    //   console.log(key, value)
    // })
    $.ajax({
      // 🧨 文章发布页面的接口 url 路径不同
      url: BigNew.article_publish,
      method: 'POST',
      data: fd,
      contentType: false,
      processData: false,
      success: (res) => {
        // console.log(res)
        if (res.code === 200) {
          alert(res.msg)
          location.href = './article_list.html'
        }
      },
    })
  })
})
